The present invention relates to a signal skew compensation circuit for adjustably delaying a plurality of signals so that they arrive at various nodes of a circuit at the same time.
Operations of separate parts of a typical large scale digital logic circuit are synchronized by one or more clock signals transmitted to many nodes in the circuit. For such a circuit to operate properly each pulse of a clock signal should arrive at each node within a time window that is substantially smaller than the period of the clock in order to avoid loss of synchronization. It is advantageous to implement a large digital logic circuit as a single integrated circuit because the various nodes in the circuit to which a clock signal may be transmitted are close together and clock signal pulses arrive at each node in the circuit at about the same time regardless of where the clock signal generator is located. Thus the frequency of operation of a single integrated circuit is usually not limited by variation in arrival time of clock signal pulses (i.e., "clock skew") at various nodes within the circuit.
However, when a digital circuit is too large to be implemented as a single integrated circuit, it is necessary to partition the circuit into two or more integrated circuits interconnected by signal conductors which may be relatively long with respect to signal paths within each integrated circuit. In such case, a clock signal pulse originating in one integrated circuit may arrive at various nodes in other integrated circuits at substantially different times due to variation in signal delay of the signal paths the clock pulse must follow to reach each integrated circuit. Loss of synchronization due to clock skew can be avoided by reducing the frequency of the clock signal, but that reduces the speed of circuit operation. Partitioned circuits may also be designed so that each integrated circuit uses a separate clock and so that separate integrated circuits communicate asynchronously. But asynchronous communication between portions of a circuit involves time consuming handshaking protocols, and the time needed to perform handshaking reduces the rate at which data can be exchanged.